using System;
using Headsight.BPMN2WF.BPMN.Model;
using Headsight.BPMN2WF.BPMN.Schemas;
using Headsight.BPMN2WF.Testing.TestObjCtors;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Headsight.BPMN2WF.BPMN.BlockModel
{
    [TestClass]
    public class BPMNProcessBlockEmptyTest : BPMNBaseElementTestFixture<BPMNFlowNodesBlockEmpty, tFlowNode>
    {
        protected override BPMNFlowNodesBlockEmpty CreateSut(tFlowNode tProcess, string expectedId)
        {
            tProcess.id = expectedId;

            return new BPMNFlowNodesBlockEmpty(expectedId,
                new BPMNFlowNodeCtor().WithTFlowElement(tProcess).WithId(expectedId).Create());
        }

        protected override tFlowNode CreateTElement()
        {
            return new tFlowNodeCtor().Create();
        }

        [TestMethod]
        public override void TestToString()
        {
            const String expected = "BPMNFlowNodesBlockEmpty[Id: block_**id**, Name: ]";

            Assert.AreEqual(expected, _sut.ToString());
        }
    }
}